package com.xg.xgaicodemother.common;

/**
 * 返回工具类
 *
 * @author shiyo
 */
public class ResultUtils {

    /**
     * 成功
     *
     * @param <T> 泛型参数，表示返回的数据类型
     * @param data 返回的数据
     * @return 返回包含成功状态码、数据和消息内容的BaseResponse对象
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "ok");
    }


    /**
     * 返回错误响应
     *
     * @param errorCode 错误码
     * @return BaseResponse 包含错误信息的响应对象
     */
    public static BaseResponse error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }


    /**
     * 创建一个表示错误的BaseResponse对象
     *
     * @param code 错误码
     * @param message 错误信息
     * @return 包含错误信息的BaseResponse对象
     */
    public static BaseResponse error(int code, String message) {
        return new BaseResponse(code, null, message);
    }


    /**
     * 创建一个包含错误信息的BaseResponse对象
     *
     * @param errorCode 错误码枚举
     * @param message 错误信息
     * @return 包含错误信息的BaseResponse对象
     */
    public static BaseResponse error(ErrorCode errorCode, String message) {
        return new BaseResponse(errorCode.getCode(), null, message);
    }
}
